OPENCV中去除小连通区域以及孔洞的示例分析 |
您所在的位置:网站首页 › opencv 最大连通区域 › OPENCV中去除小连通区域以及孔洞的示例分析 |
OPENCV中去除小连通区域以及孔洞的示例分析
发布时间:2021-06-11 14:52:23
来源:亿速云
阅读:135
作者:小新
栏目:开发技术
这篇文章主要为大家展示了“OPENCV中去除小连通区域以及孔洞的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“OPENCV中去除小连通区域以及孔洞的示例分析”这篇文章吧。 一、对于二值图,0代表黑色,255代表白色。去除小连通区域与孔洞,小连通区域用8邻域,孔洞用4邻域。 函数名字为:void RemoveSmallRegion(Mat &Src, Mat &Dst,int AreaLimit, int CheckMode, int NeihborMode) CheckMode: 0代表去除黑区域,1代表去除白区域; NeihborMode:0代表4邻域,1代表8邻域; 如果去除小连通区域CheckMode=1,NeihborMode=1去除孔洞CheckMode=0,NeihborMode=0 记录每个像素点检验状态的标签,0代表未检查,1代表正在检查,2代表检查不合格(需要反转颜色),3代表检查合格或不需检查 。 1.先对整个图像扫描,如果是去除小连通区域,则将黑色的背景图作为合格,像素值标记为3,如果是去除孔洞,则将白色的色素点作为合格,像素值标记为3。 2.扫面整个图像,对图像进行处理。 void RemoveSmallRegion(Mat &Src, Mat &Dst,int AreaLimit, int CheckMode, int NeihborMode) { int RemoveCount = 0; //新建一幅标签图像初始化为0像素点,为了记录每个像素点检验状态的标签,0代表未检查,1代表正在检查,2代表检查不合格(需要反转颜色),3代表检查合格或不需检查 //初始化的图像全部为0,未检查 Mat PointLabel = Mat::zeros(Src.size(), CV_8UC1); if (CheckMode == 1)//去除小连通区域的白色点 { cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |